home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b2.d64
/
hannibal
< prev
next >
Wrap
Text File
|
2007-02-28
|
3KB
|
118 lines
0010 //UNCLE HANNIBAL'S BACK SHOP//
0020 //WRITTEN BY CHRISTIAN BORGE//
0030 //THIS VERSION: OCT. 1981//
0040 //
0050 DIM NAME$ OF 30, ADRESS$ OF 20
0060 DIM TOWN$ OF 20, CODE$ OF 10
0070 DIM ARTICLE$(10) OF 20, PRICE(10)
0080 DIM TEXT$(10) OF 20, AMOUNT(10)
0090 DIM SPACES$ OF 40, QUANTITY(10)
0095 SPACES$(1:40):=""
0100 //*
0110 INITIALIZE
0120 REPEAT
0130 CUSTOMER
0140 GETORDER
0150 IF LINE<>0 THEN WRITEBILL
0160 INPUT "TYPE RETURN ": CODE$
0170 UNTIL THECOWSCOMEIN
0180 //*
0190 PROC INITIALIZE
0200 PRINT CHR$(147) //CLEAR SCREEN
0210 THECOWSCOMEIN:=FALSE
0220 I:=0
0230 REPEAT
0240 I:=I+1
0250 READ ARTICLE$(I),PRICE(I)
0260 UNTIL EOD //END OF DATA//
0270 MAX:=I
0280 ENDPROC INITIALIZE
0290 //
0300 PROC CUSTOMER
0310 TOTAL:=0; LINE:=0
0320 //
0330 //STUD
0340 //
0350 ENDPROC CUSTOMER
0360 //
0370 PROC GETORDER
0380 MENU
0390 TAKEIN("ARTNO")
0400 WHILE NOT FINISHED DO
0410 LINE:=LINE+1
0420 TAKEIN("QUANTITY")
0430 INVOICELINE
0440 TAKEIN("ARTNO")
0450 ENDWHILE
0460 ENDPROC GETORDER
0470 //
0480 PROC INVOICELINE
0490 TEXT$(LINE):=ARTICLE$(ARTNO)
0500 AMOUNT(LINE):=PRICE(ARTNO)*QUANTITY(LINE)
0510 TOTAL:=TOTAL+AMOUNT(LINE)
0520 ENDPROC INVOICELINE
0530 //
0540 PROC WRITEBILL
0550 PRINT CHR$(147) //CLEAR SCREEN
0560 SCREEN(4,1)
0570 PRINT NAME$
0580 PRINT ADRESS$
0590 PRINT TOWN$," ",CODE$
0600 PRINT
0610 PRINT "QUANT.",TAB(10),"ARTICLE",TAB(30),"AMOUNT"
0620 PRINT "----------------------------------------"
0630 FOR I:=1 TO LINE DO
0640 PRINT TAB(2),QUANTITY(I)," LB",
0650 PRINT TAB(9),TEXT$(I),
0660 PRINT TAB(32-LGTH(AMOUNT(I))),AMOUNT(I)
0670 ENDFOR I
0680 PRINT TAB(28),"--------"
0690 PRINT TAB(22),"TOTAL:",TAB(32-LGTH(TOTAL)),TOTAL
0700 ENDPROC WRITEBILL
0710 //
0720 PROC TAKEIN(KINDOF$)
0730 WINDOW(10,15)
0740 CASE KINDOF$ OF
0750 WHEN "ARTNO"
0760 REPEAT
0770 WINDOW(10,15)
0780 INPUT "> ": ARTNO
0790 OK:=(0<=ARTNO AND ARTNO<=MAX)
0800 UNTIL OK
0810 FINISHED:=(ARTNO=0)
0820 WHEN "QUANTITY"
0830 REPEAT
0840 SCREEN(ARTNO,20)
0850 INPUT QUANT
0860 UNTIL 0<QUANT AND INT(QUANT)=QUANT
0870 QUANTITY(LINE):=QUANT
0880 ENDCASE
0890 ENDPROC TAKEIN
0900 //
0910 PROC MENU
0920 PRINT CHR$(147)
0930 FOR I:=1 TO MAX DO
0940 PRINT I,". ",ARTICLE$(I)
0950 ENDFOR I
0960 PRINT "0. STOP"
0970 ENDPROC MENU
0980 //
0990 PROC WINDOW(X,Y)
1000 SCREEN(X,1)
1010 FOR LN:=1 TO Y-X+1 DO PRINT SPACES$
1020 SCREEN(X,1)
1030 ENDPROC WINDOW
1040 //
1050 PROC SCREEN(X,Y)
1060 PRINT CHR$(19),
1070 FOR LN:=1 TO X DO PRINT CHR$(17),
1080 FOR CH:=1 TO Y DO PRINT CHR$(29),
1090 ENDPROC SCREEN
1100 //
1110 FUNC LGTH(X)
1120 RETURN (X>1)+(X>10)+(X>100)+(X>1000)
1130 ENDFUNC LGTH
1140 //
1150 DATA "ROAST OF VEAL",1.59,"ROLLED BEEF",1.79,"CURED PORK",1.99
1160 DATA "RIBROAST",1.49,"METTWURST",1.39,"CHOPPED PORK",1.69